﻿/// <reference path="jquery-1.5.1-vsdoc.js" />

$(function () {
    $.ajaxSetup({
        beforeSend: function (xhr) {
            showLoading(true);
        },
        complete: function (xhr, textStatus) {
            showLoading(false);
        },
        error: function (xhr, textStatus, errorThrown) {
            alert($("<div>").html(xhr.responseText).html());
            //showError($("h2 i", $(xhr.responseText)).text());
        }
    });

    $("a[href=#]").live("click", function (e) {
        e.preventDefault();
    });

    $("a.button").button();

    $.datepicker.setDefaults({
        dateFormat: 'yy-m-d',
        showButtonPanel: true//,
        //changeYear: true,
        //changeMonth: true
    });


    $(".pager a").live("click", function (e) {
        e.preventDefault();

        var container = $(this).parent().parent();
        var url = $(this).attr("href");

        $.get(url, {
            rand: rand(9999)
        }, function (data) {
            container.html(data);
        });
    });

    $("table.grid tbody tr")
    .live("mouseover", function () {
        /*if ($("tbody tr:odd", $(this).parents("table.grid")).index($(this)) >= 0) {
        $(this).removeClass("odd");
        }*/

        $("td.receipt", $(this)).removeClass("ui-state-highlight");
        $("td.payment", $(this)).removeClass("ui-state-error");

        $(this).addClass("hover");
    })
    .live("mouseout", function () {
        $(this).removeClass("hover");

        /*if ($("tbody tr:odd", $(this).parents("table.grid")).index($(this)) >= 0) {
        $(this).addClass("odd");
        }*/

        $("td.receipt", $(this)).addClass("ui-state-highlight");
        $("td.payment", $(this)).addClass("ui-state-error");
    });


    //
    // 新增

    $("a#add").live("click", function (e) {
        e.preventDefault();
        var url = $(this).attr("href");
        showSaveBalanceDialog(url);
    });


    //
    // 修改

    $("#balanceList td.actions a.modify").live("click", function (e) {
        e.preventDefault();
        var url = $(this).attr("href");
        showSaveBalanceDialog(url);
    });


    //
    // 删除

    $("#balanceList td.actions a.delete").live("click", function (e) {
        e.preventDefault();

        if (!confirm("您确定删除此项目吗？")) {
            return;
        }

        var url = $(this).attr("href");
        $.post(url, function (data) {
            if (data.Success) {
                refreshBalanceList();
            }
            else {
                alert(data.Message);
            }
        });
    });

    //showLoading(true);
});

function showSaveBalanceDialog(url) {
    $.get(url, function (data) {
        $("#saveBalanceDialog").html(data);

        $("#saveBalanceDialog").dialog({
            autoOpen: true,
            width: 400,
            resizable: false,
            modal: true,
            buttons: {
                "保存": function () {
                    var dialog = $(this);
                    $("#saveBalanceForm").ajaxSubmit(function (data) {
                        if (data.Success) {
                            dialog.dialog("close");
                            refreshBalanceList();
                        }
                        else {
                            dialog.html(data);
                        }
                    });
                },
                "取消": function () {
                    $(this).dialog("close");
                }
            }
        });

    });
}

function refreshBalanceList() {
    var url = $("#balanceList").attr("href");
    $.get(url, {
        rand: rand(9999)
    }, function (data) {
        $("#balanceList").html(data);
    });
}

function showLoading(visible) {
    if (visible) {
        $("#overlay")
        .css({
            width: $(window).width(),
            height: $(window).height()
        }).show();

        $("#loading")
        .css({
            left: ($("#overlay").width() / 2 - $("#loading").width() / 2) + "px",
            top: ($("#overlay").height() / 2 - $("#loading").height() / 2) + "px"
        }).show();
    }
    else {
        $("#overlay").hide();
        $("#loading").hide();
    }
}

function rnd() {
    rnd.seed = (rnd.seed * 9301 + 49297) % 233280;
    return rnd.seed / (233280.0);
};

rnd.today = new Date();
rnd.seed = rnd.today.getTime();

function rand(number) {
    return Math.ceil(rnd() * number);
};
